
const { ccclass, property } = cc._decorator;
/** 复杂聊天菜单item create by tm */
@ccclass
export default class DWC_DCMenuItem extends cc.Component {
    //-----------组件区----------
    @property(cc.Sprite)
    img_bg: cc.Sprite = null;
    /** 背景状态图片[未选中，选中] */
    @property(cc.SpriteFrame)
    bgArr: cc.SpriteFrame[] = [];
    @property(cc.Label)
    lbl_menu: cc.Label = null;
    @property(cc.Button)
    btn_delete: cc.Button = null;
    @property(cc.Node)
    node_red: cc.Node = null;
    //-----------变量区----------
    /** 是否选中 */
    isChoose: boolean = null;
    /** item idx */
    itemIdx: number = null;
    /** item 父级node */
    itemParent: cc.Node = null;
    /** 聊天类型 1 私聊消息(玩家) 2 桌子消息(房间) 3 大厅消息 */
    chatType: number = null;
    /** 聊天id 
     * chatType == 1时,为接收者 rid
     * chatType == 2时,为接收者 桌子ID
     * chatType == 3时,为接收者 所属代理ID
    */
    chatId: any = null;
    /** 初始化(外界调用) */
    init(_args): void {
        this.lbl_menu.string = cc.vv.GLUtils.getShortStr(_args.menuName || ``, 5);
        this.btn_delete.node.active = _args.isDelete;
        this.itemIdx = _args.itemIdx;
        this.itemParent = _args.menuNode;
        this.chatType = _args.type;
        this.chatId = _args.chatId;
        this.setStatus(_args.isChoose);
    }
    /** 点击item */
    touchItem(): void {
        if (this.isChoose) return;
        this.itemParent && this.itemParent.emit(`dwc_detailChat_touchMenuItem`, {
            idx: this.itemIdx,
            type: this.chatType,
            chatId: this.chatId
        });
        this.setRed(false);
    }
    /** 设置选中状态 
     * @param _isChoose 是否选中
    */
    setStatus(_isChoose: boolean = false): void {
        this.isChoose = _isChoose;
        this.img_bg.spriteFrame = this.bgArr[_isChoose ? 1 : 0];
        this.lbl_menu.node.color = _isChoose ? cc.color(255, 255, 255) : cc.color(115, 157, 218);
        this.lbl_menu.fontSize = _isChoose ? 34 : 30;
    }
    /** 移除当前选项 */
    touchDelete(): void {
        this.itemParent && this.itemParent.emit(`dwc_detailChat_deleteMenuItem`, {
            idx: this.itemIdx,
            isChoose: this.isChoose,
            type: this.chatType,
            chatId: this.chatId
        });
        this.node.destroy();
    }
    /** 设置小红点 */
    setRed(_isShow: boolean = true): void {
        this.node_red.active = _isShow;
    }
    onDestroy() {

    }
}
